/**
 * @description 修改用户信息
 */

const { updateUser } = require('../../service/users')
const { updateUserInfoFailInfo, updateUserInfoDbErrorFailInfo } = require('../../res-model/failInfo/index')
const { ErrorRes, SuccessRes } = require('../../res-model/index')

/**
 * 修改用户信息
 * @param {object} curUserInfo 当前用户信息
 * @param {object} data 要修改的用户信息
 */
async function updateUserInfo(curUserInfo, data = {}) {
  const { username } = curUserInfo
  try {
    const res = await updateUser(username, data)
    if (res) {
      return new SuccessRes()
    }
    // 修改失败，但数据库操作正确
    return new ErrorRes(updateUserInfoFailInfo)
  } catch (ex) {
    console.error('修改用户信息', ex)
    return new ErrorRes(updateUserInfoDbErrorFailInfo)
  }
}

module.exports = updateUserInfo
